package org.bigdata.framework.core.utils;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.util.Map;
import java.util.Properties;

import com.alibaba.fastjson.JSON;


public class Token {
	public static String sKserviceToken(){
		try {
			Properties properties = new Properties();
			// 使用ClassLoader加载properties配置文件生成对应的输入流
			InputStream in = Token.class.getClassLoader().getResourceAsStream("token.properties");
			// 使用properties对象加载输入流
			properties.load(in);
            URL url = new URL("http://"+properties.getProperty("SKservice.url")+"/SKservice/restapi/getAuthToken.do?IP="+properties.getProperty("SKservice.IP")+"&user="+properties.getProperty("SKservice.user")+"&pass="+properties.getProperty("SKservice.pass")+"");// 创建连接  
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();  
            connection.setDoOutput(true);  
            connection.setDoInput(true);  
            connection.setUseCaches(false);  
            connection.setInstanceFollowRedirects(true);  
            connection.setRequestMethod("POST"); // 设置请求方式  
            connection.setRequestProperty("Accept", "application/json"); // 设置接收数据的格式  
            connection.setRequestProperty("Content-Type", "application/json"); // 设置发送数据的格式  
            connection.connect();  
            OutputStreamWriter out = new OutputStreamWriter(connection.getOutputStream(), "UTF-8"); // utf-8编码  
            out.flush();  
            out.close();  
  
            int code = connection.getResponseCode();  
            InputStream is = null;  
            if (code == 200) {  
                is = connection.getInputStream();  
            } else {  
                is = connection.getErrorStream();  
            }  
  
            // 读取响应  
            int length = (int) connection.getContentLength();// 获取长度  
            if (length != -1) {  
                byte[] data = new byte[length];  
                byte[] temp = new byte[512];  
                int readLen = 0;  
                int destPos = 0;  
                while ((readLen = is.read(temp)) > 0) {  
                    System.arraycopy(temp, 0, data, destPos, readLen);  
                    destPos += readLen;  
                }  
                String result = new String(data, "UTF-8"); // utf-8编码  
                Map dataMap = (Map)JSON.parse(result);  
                /*for (Object map : maps.entrySet()){  
                    System.out.println(((Map.Entry)map).getKey()+"     " + ((Map.Entry)map).getValue());  
                }  */
                return dataMap.get("SysAuthToken").toString();  
            }  
  
        } catch (IOException e) {  
            System.out.println(e);  
        }  
        return "error"; // 自定义错误信息  
    }
	public static String etv3Token(){
		try {
			Properties properties = new Properties();
			// 使用ClassLoader加载properties配置文件生成对应的输入流
			InputStream in = Token.class.getClassLoader().getResourceAsStream("token.properties");
			// 使用properties对象加载输入流
			properties.load(in);
            URL url = new URL("http://"+properties.getProperty("etv3.url")+"/etv3/restapi/getAuthToken.do?IP="+properties.getProperty("etv3.IP")+"&user="+properties.getProperty("etv3.user")+"&pass="+properties.getProperty("etv3.pass")+"");// 创建连接  
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();  
            connection.setDoOutput(true);  
            connection.setDoInput(true);  
            connection.setUseCaches(false);  
            connection.setInstanceFollowRedirects(true);  
            connection.setRequestMethod("POST"); // 设置请求方式  
            connection.setRequestProperty("Accept", "application/json"); // 设置接收数据的格式  
            connection.setRequestProperty("Content-Type", "application/json"); // 设置发送数据的格式  
            connection.connect();  
            OutputStreamWriter out = new OutputStreamWriter(connection.getOutputStream(), "UTF-8"); // utf-8编码  
            out.flush();  
            out.close();  
  
            int code = connection.getResponseCode();  
            InputStream is = null;  
            if (code == 200) {  
                is = connection.getInputStream();  
            } else {  
                is = connection.getErrorStream();  
            }  
  
            // 读取响应  
            int length = (int) connection.getContentLength();// 获取长度  
            if (length != -1) {  
                byte[] data = new byte[length];  
                byte[] temp = new byte[512];  
                int readLen = 0;  
                int destPos = 0;  
                while ((readLen = is.read(temp)) > 0) {  
                    System.arraycopy(temp, 0, data, destPos, readLen);  
                    destPos += readLen;  
                }  
                String result = new String(data, "UTF-8"); // utf-8编码  
                Map dataMap = (Map)JSON.parse(result);  
                /*for (Object map : maps.entrySet()){  
                    System.out.println(((Map.Entry)map).getKey()+"     " + ((Map.Entry)map).getValue());  
                }  */
                return dataMap.get("SysAuthToken").toString();  
            }  
  
        } catch (IOException e) {  
            System.out.println(e);  
        }  
        return "error"; // 自定义错误信息  
    }
	
	public static String getData(String type,String method,String parameter){
		try {
			Properties properties = new Properties();
			// 使用ClassLoader加载properties配置文件生成对应的输入流
			InputStream in = Token.class.getClassLoader().getResourceAsStream("token.properties");
			// 使用properties对象加载输入流
			properties.load(in);
            URL url = new URL("http://"+properties.getProperty("data.url")+"/"+type+"/restapi/"+method+".do?"+parameter);// 创建连接  
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();  
            connection.setDoOutput(true);  
            connection.setDoInput(true);  
            connection.setUseCaches(false);  
            connection.setInstanceFollowRedirects(true);  
            connection.setRequestMethod("POST"); // 设置请求方式  
            connection.setRequestProperty("Accept", "application/json"); // 设置接收数据的格式  
            connection.setRequestProperty("Content-Type", "application/json"); // 设置发送数据的格式
            connection.setRequestProperty("Connection", "Keep-Alive");    
            connection.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1)");    
            connection.connect();  
            OutputStreamWriter out = new OutputStreamWriter(connection.getOutputStream(), "UTF-8"); // utf-8编码  
            out.flush();  
            out.close();  
  
            int code = connection.getResponseCode();  
            InputStream is = null;  
            if (code == 200) {  
                is = connection.getInputStream();  
            } else {  
                is = connection.getErrorStream();  
            }  
  
            // 读取响应  
            int length = (int) connection.getContentLength();// 获取长度  
            if (length != -1) {  
                byte[] data = new byte[length];  
                byte[] temp = new byte[512];  
                int readLen = 0;  
                int destPos = 0;  
                while ((readLen = is.read(temp)) > 0) {  
                    System.arraycopy(temp, 0, data, destPos, readLen);  
                    destPos += readLen;  
                }  
                String result = new String(data, "UTF-8"); // utf-8编码  
                return result;  
            }  
  
        } catch (IOException e) {  
            System.out.println(e);  
        }  
        return "error"; // 自定义错误信息  
    }
	public static void main(String[] args) {
		System.out.println(sKserviceToken());
		System.out.println(etv3Token());
	}
}
